package com.opesoft.fw.i18n.taglib;

import java.util.Map;

import javax.servlet.jsp.tagext.BodyTagSupport;

import org.apache.log4j.Logger;

import com.opesoft.fw.core.Constants;
import com.opesoft.fw.i18n.Messages;

public class Base extends BodyTagSupport
{

	Logger log=Logger.getLogger(this.getClass());

	@SuppressWarnings("unchecked")
	protected String findI18nMessage(String name)
	{
		String prefix=null; // Name的：前是前缀的名字

		// 对前缀和名字进行处理
		if(name.indexOf(":")<0) prefix=null;
		else
		{
			String[] strArray=name.split(":");
			if(strArray!=null&&strArray.length>0)
			{
				prefix=strArray[0];
				if(strArray.length>1) name=strArray[1];
				else name="";
			}
		}

		// 从PageContext中的Messages得到国际化信息
		if(pageContext.getAttribute(Constants.I18N_MESSAGES_MAP)!=null)
		{

			Map<String, Messages> msgsMap=(Map<String, Messages>)pageContext.getAttribute(Constants.I18N_MESSAGES_MAP);
			Messages msgs=msgsMap.get(prefix);

			if(msgs!=null)
			{
				return msgs.getMessage(name);
			}
			else
			{
				log.error("Can't find I18N Messages whth prefix : "+prefix);
				return "";
			}
		}
		else
		{
			log.error("No init any Messages in PageContext.");
			return "";
		}

	}

}
